% !TEX program=xelatex

% nobabel means you'll need to provide your own month names, week day headings,
% etc
\documentclass[17pt,nobabel,sundayweek,giant,rgb]{cdcalendar}

%% and here we do some settings for a calendar in Chinese
%% (*not* the lunar calendar! Just localising the Gregorian calendar into
%% Chinese)
\usepackage{zh-mod}
\newcommand{\weibo}[1]{{\xeCJKsetup{CJKecglue={}}{\color{red}\faWeibo{}}@#1}}

\usepackage[rm]{roboto}

\usepackage{csvsimple,xstring}

\robustify{\\}
\newcommand{\annotdate}[2]{%
  \ifboolexpr{ test{\IfBeginWith{#2}{初}}
            or test{\IfBeginWith{#2}{十}}
            or test{\IfEndWith{#2}{十}}
            or test{\IfBeginWith{#2}{廿}}
  }{\def\extra{}}%
   {\def\extra{正赤}}%
  \node[font=\tiny\sffamily\CJKspace,\extra,
  anchor=north,outer sep=0.55ex,align=flush center]
  at (cdCal-\thepage-#1) {#2};%
}

\newcommand{\importlunar}[1]{%
\begin{scope}[on background layer]%
  %% lunar-2022.csv contains mappings between the Chinese lunar calendar and
  %% 2022 Gregorian calendar, with columns EVENT and DATE.
  %% Created with https://github.com/infinet/lunar-calendar; converted to Simplified Chinese;
  %% converted to .csv with https://www.indigoblue.eu/ics2csv/
  \csvreader[filter test=\IfBeginWith{\LNDATE}{#1}]
  {lunar-2022.csv}{EVENT=\LNEVENT,DATE=\LNDATE}
  {\annotdate{\LNDATE}{\LNEVENT}}
\end{scope}%
}

%%%%%%
% Some settings for the monthly calendars, to accomodate extra annotations below each date
%%%%%%
\dayHeadingStyle{font=\sffamily\color{gray!90}}
\sundayColor{酡红}
\monthTitleStyle{font={\fontsize{42pt}{44pt}\selectfont\fangsong},text=正青}
\eventStyle{\scriptsize\heiti\def\CJKecglue{}}
\renewcommand\printeventname[1]{{\sffamily #1}}
\tikzset{every calendar/.append style={day yshift=2.5\ccwd,day xshift=2.75\ccwd},every day/.append style={font=\bfseries}}
\patchcmd{\monthCalendar}{0pt,\paperheight}{0pt,\dimexpr\paperheight-0.5cm\relax}{}{}

%% 月份上下加的小点缀，嫌太花了的可以把这些删掉。
\usepackage{scrlfile}
\ReplacePackage{xpatch}{regexpatch}
\usepackage{pgfornament-han}
\usepackage{cncolours}
\patchcmd{\monthCalendar}
  {\pgfcalendarmonthname}
  {\rotatebox{90}{\pgfornamenthan[width=.8\ccwd,color=淡青]{43}}\\%
   \pgfcalendarmonthname}
  {}{}
\patchcmd{\monthCalendar}
  {{\rotatebox{-90}{#1}}}
  {{\rotatebox{-90}{#1}}\\[0.75ex]%
    \rotatebox{90}{\pgfornamenthan[width=.8\ccwd,color=淡青]{43}}}
  {}{}

%% Define all event mark styles here
\tikzset{holiday/.style={rectangle,fill=牙色,inner xsep=1.375em,inner ysep=0.5em}}
\tikzset{pink icon/.style={text=水红,font=\Large,yshift=0.2ex}}
\tikzset{blue icon/.style={text=淡青,font=\Large,yshift=0.2ex}}


\usepackage[fixed]{fontawesome5}
\usepackage{graphicx}
\usepackage{wallpaper}
\graphicspath{{img/}}

\setlength{\CalPageMargin}{1cm}
% \setlength{\EventLineWidth}{6in}
\geometry{a4paper}

\begin{document}

%\TileWallPaper{.5\paperwidth}{.5\paperheight}{ricepaper_v3}
\coverImage[\qquad 爱上紫禁城\ 摄影：张林\url{https://www.dpm.org.cn/light/254473.html}]{爱上紫禁城-sq}


\coverTitle[
font=\fontsize{48pt}{50pt}\sffamily\fangsong\bfseries,
text width=\linewidth,align=flush right,正青]
{2022年历（附农历节气）}

\makeCover
\clearpage

%% Uncomment the next line if you want to clear the background
%\ClearWallPaper

\illustration[爱上这座城\ 摄影：朱楷\url{https://www.dpm.org.cn/light/248999.html}]{\textwidth}{爱上这座城-02}
% 元旦：2022年1月1日至3日放假，共3天。
% 二、春节：1月31日至2月6日放假调休，共7天。1月29日（星期六）、1月30日（星期日）上班。
\begin{monthCalendar}{2022}{01}
  \event[mark style=holiday]{2022-01-01}{2022-01-03}{元旦放假}
  \event{2022-01-11}{2022-01-13}{ACME Conference}
  \event[mark style=pink icon,marker=\faBirthdayCake]{2022-01-23}{}{朋友生日}
  \event[mark style=holiday]{2022-01-31}{2022-02-06}{春节放假调休}
  \event[mark style=blue icon,marker=\faBriefcase]{2022-01-29}{2}{上班日}
  \importlunar{2022-01}
\end{monthCalendar}

\clearpage

\illustration[清\ 席佩兰花鸟草虫册（局部）\url{https://www.dpm.org.cn/light/253607.html}]{\textwidth}{清+席佩兰花鸟草虫册}

% 二、春节：1月31日至2月6日放假调休，共7天。1月29日（星期六）、1月30日（星期日）上班。
\begin{monthCalendar}{2022}{02}
  \event[mark style=holiday]{2022-01-31}{2022-02-06}{春节放假调休}
  \importlunar{2022-02}
\end{monthCalendar}



\clearpage

\illustration[明\ 项圣谟青梅初熟卷（局部）\url{https://www.dpm.org.cn/light/255579.html}]{\textwidth}{明-项圣谟青梅初熟卷}

\begin{monthCalendar}{2022}{03}
  \importlunar{2022-03}
\end{monthCalendar}

\clearpage

\illustration[爱上这座城\ 摄影：朱楷 \url{https://www.dpm.org.cn/light/249343.html}]{\textwidth}{爱上这座城-01}

% 三、清明节：4月3日至5日放假调休，共3天。4月2日（星期六）上班。
% 四、劳动节：4月30日至5月4日放假调休，共5天。4月24日（星期日）、5月7日（星期六）上班。
\begin{monthCalendar}{2022}{04}
  \event[mark style=blue icon,marker=\faBriefcase]{2022-04-02}{}{上班日}
  \event[mark style=holiday]{2022-04-03}{3}{清明节放假调休}
  \event[mark style=blue icon,marker=\faBriefcase]{2022-04-24}{}{上班日}
  \event[mark style=holiday]{2022-04-30}{5}{劳动节放假调休}
  \importlunar{2022-04}
\end{monthCalendar}

\clearpage

\illustration[爱上这座城\ 摄影：朱楷\url{https://www.dpm.org.cn/light/248999.html}]{\textwidth}{爱上这座城-02}

% 四、劳动节：4月30日至5月4日放假调休，共5天。4月24日（星期日）、5月7日（星期六）上班。
\begin{monthCalendar}{2022}{05}
  \event[mark style=holiday]{2022-04-30}{5}{劳动节放假调休}
  \event[mark style=blue icon,marker=\faBriefcase]{2022-05-07}{}{上班日}
  \importlunar{2022-05}
\end{monthCalendar}

\clearpage

\illustration[清\ 席佩兰花鸟草虫册（局部）\url{https://www.dpm.org.cn/light/253607.html}]{\textwidth}{清+席佩兰花鸟草虫册}

% 五、端午节：6月3日至5日放假，共3天。
\begin{monthCalendar}{2022}{06}
  \event[mark style=holiday]{2022-06-03}{3}{端午节放假}
  \importlunar{2022-06}
\end{monthCalendar}

\clearpage

\illustration[明\ 项圣谟青梅初熟卷（局部）\url{https://www.dpm.org.cn/light/255579.html}]{\textwidth}{明-项圣谟青梅初熟卷}

\begin{monthCalendar}{2022}{07}
  \importlunar{2022-07}
\end{monthCalendar}

\clearpage

\illustration[爱上这座城\ 摄影：朱楷 \url{https://www.dpm.org.cn/light/249343.html}]{\textwidth}{爱上这座城-01}

\begin{monthCalendar}{2022}{08}
  \importlunar{2022-08}
\end{monthCalendar}

\clearpage

\illustration[爱上这座城\ 摄影：朱楷\url{https://www.dpm.org.cn/light/248999.html}]{\textwidth}{爱上这座城-02}

% 六、中秋节：9月10日至12日放假，共3天。
\begin{monthCalendar}{2022}{09}
  \event[mark style=holiday]{2022-09-10}{3}{中秋节放假}
  \importlunar{2022-09}
\end{monthCalendar}

\clearpage

\illustration[清\ 席佩兰花鸟草虫册（局部）\url{https://www.dpm.org.cn/light/253607.html}]{\textwidth}{清+席佩兰花鸟草虫册}

% 七、国庆节：10月1日至7日放假调休，共7天。10月8日（星期六）、10月9日（星期日）上班。
\begin{monthCalendar}{2022}{10}
  \event[mark style=holiday]{2022-10-01}{2022-10-07}{国庆节放假调休}
  \event[mark style=blue icon,marker=\faBriefcase]{2022-10-08}{2}{上班日}
  \importlunar{2022-10}
\end{monthCalendar}

\clearpage

\illustration[明\ 项圣谟青梅初熟卷（局部）\url{https://www.dpm.org.cn/light/255579.html}]{\textwidth}{明-项圣谟青梅初熟卷}

\begin{monthCalendar}{2022}{11}
  \importlunar{2022-11}
\end{monthCalendar}

\clearpage

\illustration[爱上这座城\ 摄影：朱楷 \url{https://www.dpm.org.cn/light/249343.html}]{\textwidth}{爱上这座城-01}

\begin{monthCalendar}{2022}{12}
  \importlunar{2022-12}
\end{monthCalendar}

\end{document}
